import UserAPI from '@/api/user'
import type { UserQuery } from '@/api/user/model'
import type { IContentConfig } from '@/components/PageContent/index.vue'

const contentConfig: IContentConfig<UserQuery> = {
  pageName: 'sys:user',
  table: {
    highlightCurrentRow: true,
  },
  indexAction(params) {
    if ('createAt' in params) {
      const createAt = params.createAt as string[]
      params.startTime = createAt[0]
      params.endTime = createAt[1]
      delete params.createAt
    }
    return UserAPI.getPage(params)
  },
  deleteAction: UserAPI.deleteByIds,
  exportAction: UserAPI.export,
  pk: 'id',
  toolbar: [
    'add',
    'delete',
    'export',
    {
      name: 'import',
      icon: 'upload',
      text: '导入',
      auth: 'import',
    },
  ],
  cols: [
    { type: 'selection', width: 50, align: 'center' },
    { label: '编号', align: 'center', prop: 'id', width: 100, show: false },
    { label: '用户名', align: 'center', prop: 'username' },
    { label: '头像', align: 'center', prop: 'avatar', templet: 'image' },
    { label: '用户昵称', align: 'center', prop: 'nickname', width: 120 },
    { label: '性别', align: 'center', prop: 'genderLabel', width: 100 },
    { label: '部门', align: 'center', prop: 'deptName', width: 120 },
    { label: '手机号码', align: 'center', prop: 'mobile', width: 120 },
    {
      label: '状态',
      align: 'center',
      prop: 'status',
      templet: 'custom',
      slotName: 'status',
    },
    { label: '创建时间', align: 'center', prop: 'createTime', width: 180 },
    {
      label: '操作',
      fixed: 'right',
      width: 220,
      templet: 'tool',
      operat: [
        {
          name: 'reset_pwd',
          auth: 'password:reset',
          icon: 'refresh-left',
          text: '重置密码',
        },
        'edit',
        'delete',
      ],
    },
  ],
}

export default contentConfig
